<h5 id="git stash 暂存工作区git已跟踪的文件修改"><a href="#git stash 暂存工作区git已跟踪的文件修改">git stash 暂存工作区git已跟踪的文件修改</a></h5><p>  命令：git stash [save message]<br>  举例1：git stash<br>  举例2：git stash save "test stash command"<br>  tips：git stash 后跟 save "test stash command" ，可以给我们暂存的内容加个备注，如果不是暂存后立即使用并且很快就删除的暂存内容，我们建议都加上备注内容，方便我们以后自己回忆起为何要暂存、暂存的是什么等。</p>
<h5 id="git stash list 查看所有暂存条目"><a href="#git stash list 查看所有暂存条目">git stash list 查看所有暂存条目</a></h5><p>  命令：git stash list<br>  tips：查看的是当前还存在的，不管是在哪个分支上建立的stash 暂存，都可以查看，stash 暂存也可以应用于任何分支</p>
<h5 id="git stash show 查看某条目修改情况"><a href="#git stash show 查看某条目修改情况">git stash show 查看某条目修改情况</a></h5><p>  命令：git stash show [options] [stash]</p>
<p>  命令：git stash show<br>  tips：查看最近的stash暂存的修改情况，只展示修改的文件名、修改处、文件修改数量、插入、删除数量等简略信息。</p>
<p>  命令：git stash show &lt;stash&gt;​<br>  举例：git stash show stash@{0}<br>  tips：查看stash@{0}暂存的修改情况，只展示修改的文件名、修改处、文件修改数量、插入、删除数量等简略信息。</p>
<p>  命令：git stash show -a<br>  tips：查看最近的stash暂存的<strong>详细的修改情况</strong>。</p>
<p>  命令：git stash show &lt;stash&gt;​ -a<br>  举例：git stash show stash@{0} -a<br>  tips：查看stash@{0}暂存的<strong>详细的修改情况</strong>。</p>
<h5 id="git stash pop 应用某条暂存的修改并删除该条暂存"><a href="#git stash pop 应用某条暂存的修改并删除该条暂存">git stash pop 应用某条暂存的修改并删除该条暂存</a></h5><p>  命令：git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]</stash></p>
<p>  举例1：git stash pop<br>  tips：应用stash最近的暂存的一个条目修改到当前分支上，并删除该条目</p>
<p>  举例2：git stash pop stash@{1}<br>  tips：应用stash@{1}暂存的一个条目修改到当前分支上，并删除该条目</p>
<h5 id="git stash drop 删除某条暂存"><a href="#git stash drop 删除某条暂存">git stash drop 删除某条暂存</a></h5><p>  命令：git stash drop [-q|--quiet] [&lt;stash&gt;​]<br>  举例：git stash drop stash@{2}</p>
<h5 id="git stash apply 应用某条暂存到当前分支"><a href="#git stash apply 应用某条暂存到当前分支">git stash apply 应用某条暂存到当前分支</a></h5><p>  命令：git stash apply [&lt;stash&gt;​]<br>  举例：git stash apply stash@{2}</p>
<h5 id="git stash clear 清空所有的暂存条目"><a href="#git stash clear 清空所有的暂存条目">git stash clear 清空所有的暂存条目</a></h5><p>  命令：git stash clear</p>
<p>我们再举个例子，在实际的情况中stash可能的用法：</p>
<p>  当我们在修改代码的时候，本来应该在我们的需求分支上面去修改的，但是我们当前分支是生产分支，而我们又不小心把生成分支当成是自己的需求分支了，并且已经修改了很多代码了，我们现在有什么快捷的办法把我们的修改应用到我们需求分支上面去呢？<br>  这时我们就可以如下操作：<br>1、git stash (暂存在生产分支的修改：如果有已经commit的需要先使用 <a href="https://liu_yong.gitee.io.site/blogs/84/">git cherry-pick</a> 命令迁移这些commit,生产分支的commit记录可以使用 <a href="https://liu_yong.gitee.io/blogs/82/">git reset</a> 恢复；如果还未commit但是有add 的修改，那么可以使用 <a href="https://liu_yong.gitee.io/blogs/76/">git 撤销暂存区的修改</a> 方式来恢复到工作区，然后再暂存起来)<br>2、git checkout 切换到需求分支(git stash后如果有新建的文件没有被暂存起来，不用管他们，直接切换分支即可<a href="https://liu_yong.gitee.io/blogs/80/">点我查看 git checkout 更多用法</a>。git 2.23 版本后也可以使用git switch命令来切换分支等<a href="https://liu_yong.gitee.io/blogs/79/">点我查看 git switch 更多用法</a>)<br>3、git stash pop(将刚刚暂存的修改应用到需求分支即可)</p>
<p>参考资料：<br><a href="https://git-scm.com/docs/git-stash">https://git-scm.com/docs/git-stash</a></p>
